home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 January - Disc 2 / Macworld (1999-01) (Disk 2).dmg / Serious Demos / Symbolic Composer 4.2 / Environment / System / CRESC / Variations / gen-variants-chordt < prev    next >
Lisp/Scheme  |  1996-12-31  |  2KB  |  29 lines

  1. gen-variants-chordt  seed number  chord-trim-value transpose-value 
  2.                                                  symbol-pattern 
  3.  
  4. Use this to generate a sequence of chords from a given symbol-pattern. The number of chords generated is equal to the length of the pattern. The chords are trimmed by random control to a size with a top limit equal to the length of the symbol-pattern. Transpositon is applied with random control to each variant with a top limit value equal to length of the symbol-pattern.
  5.  
  6. (setq chds (gen-variants-chordt 0.34 nil nil nil '(a b c d)))
  7. --> (fe ee cd g)
  8.  
  9. The number sets the number of chords generated. The chord-trim-value sets the number of symbols in each chord at random value between 1 and &optional chord-trim-value. 
  10.  
  11. (setq chrds1 (gen-variants-chordt 0.34 12 3 nil '(a b c d)))
  12. --> (fe ee cd g fed ge efd e de fg ce eg)
  13.  
  14. A transpose value can be set to provide a top limit for random control over the transposition of each chord generated.
  15.  
  16. (setq chds2 (gen-variants-chordt 0.1515 nil nil 7 '(a b c d)))
  17. --> (if ede ecfe fifi)
  18.  
  19. The function may be used with quite extensive symbol-patterns (even those containing pause symbols) as long as trim and transpose values are set.
  20.  
  21. (setq mel '(a b c = f c g h e e f))
  22. (setq chrds3 (gen-variants-chordt 0.11 4 4 4 mel))
  23. --> (fgid ej l gjh)
  24.  
  25. The repetition of symbols within chord atoms makes it possible to use symbol-melodize to create sympathetic melodies or bass lines.
  26.  
  27. (setq bass (symbol-melodize chrds3))
  28. --> (f g i d e j l g j h)
  29.